//package com.scm.biz.flow;
//
//import java.io.File;
//import java.util.LinkedList;
//import java.util.List;
//
//import org.dom4j.Document;
//import org.dom4j.DocumentException;
//import org.dom4j.Element;
//import org.dom4j.io.SAXReader;
//
//import com.scm.biz.enums.OrderTypeEnum;
//
//public class OrderFlowConfig {
//	private static List<OrderFlow> designOrderFlows = new LinkedList<OrderFlow>();
//	private static List<OrderFlow> proofingOrderFlows = new LinkedList<OrderFlow>();
//	private static List<OrderFlow> productionOrderFlows = new LinkedList<OrderFlow>();
//	public static OrderTask getOrderTask(final OrderTypeEnum orderType) {
//		return new OrderTask() {
//			@Override
//			public OrderFlow getNextFlow(String currentCode) {
//				if(orderType.equals(OrderTypeEnum.T1)){
//					for(int i =0;i<designOrderFlows.size();i++){
//						OrderFlow orderFlow = designOrderFlows.get(i);
//						if(orderFlow.getCode().equals(currentCode)){
//							if(i<designOrderFlows.size()-1){
//								return designOrderFlows.get(i+1);
//							}else{
//								return null;
//							}
//						}
//					}
//				}else if(orderType.equals(OrderTypeEnum.T2)){
//					for(int i =0;i<proofingOrderFlows.size();i++){
//						OrderFlow orderFlow = proofingOrderFlows.get(i);
//						if(orderFlow.getCode().equals(currentCode)){
//							if(i<proofingOrderFlows.size()-1){
//								return proofingOrderFlows.get(i+1);
//							}else{
//								return null;
//							}
//						}
//					}
//				}else if(orderType.equals(OrderTypeEnum.T3)){
//					for(int i =0;i<productionOrderFlows.size();i++){
//						OrderFlow orderFlow = productionOrderFlows.get(i);
//						if(orderFlow.getCode().equals(currentCode)){
//							if(i<productionOrderFlows.size()-1){
//								return productionOrderFlows.get(i+1);
//							}else{
//								return null;
//							}
//						}
//					}
//				}
//				
//				return null;
//			}
//
//			@Override
//			public OrderFlow getCurrentFlow(String currentCode) {
//				if(orderType.equals(OrderTypeEnum.DesignOrderType)){
//					for(OrderFlow orderFlow:designOrderFlows){
//						if(orderFlow.getCode().equals(currentCode)){
//							return orderFlow;
//						}
//					}
//				}else if(orderType.equals(OrderTypeEnum.ProofingOrderType)){
//					for(OrderFlow orderFlow:proofingOrderFlows){
//						if(orderFlow.getCode().equals(currentCode)){
//							return orderFlow;
//						}
//					}
//				}else if(orderType.equals(OrderTypeEnum.ProductionOrderType)){
//					for(OrderFlow orderFlow:productionOrderFlows){
//						if(orderFlow.getCode().equals(currentCode)){
//							return orderFlow;
//						}
//					}
//				}
//				return null;
//			}
//		};
//	}
//	public static void init(String filePath) {
//		// 创建saxReader对象
//		SAXReader reader = new SAXReader();
//		// 通过read方法读取一个文件 转换成Document对象
//		try {
//			Document document = reader.read(new File(filePath));
//			// 获取根节点元素对象
//			Element node = document.getRootElement();
//			List<Element> list = node.elements();
//			OrderFlow orderFlow = null;
//			for (Element ele : list) {
//				if ("T1".equals(ele.attributeValue("type"))) {
//					for (Element flow : (List<Element>) ele.elements()) {
//						orderFlow = new OrderFlow();
//						orderFlow.setCode(flow.attributeValue("code"));
//						orderFlow.setDescription(flow.attributeValue("description"));
//						orderFlow.setStatus(flow.attributeValue("status"));
//						orderFlow.setUnionCode(flow.attributeValue("union-code"));
//						designOrderFlows.add(orderFlow);
//					}
//				} else if ("T2".equals(ele.attributeValue("type"))) {
//					for (Element flow : (List<Element>) ele.elements()) {
//						orderFlow = new OrderFlow();
//						orderFlow.setCode(flow.attributeValue("code"));
//						orderFlow.setDescription(flow.attributeValue("description"));
//						orderFlow.setStatus(flow.attributeValue("status"));
//						orderFlow.setUnionCode(flow.attributeValue("union-code"));
//						proofingOrderFlows.add(orderFlow);
//					}
//				} else if ("T3".equals(ele.attributeValue("type"))) {
//					for (Element flow : (List<Element>) ele.elements()) {
//						orderFlow = new OrderFlow();
//						orderFlow.setCode(flow.attributeValue("code"));
//						orderFlow.setDescription(flow.attributeValue("description"));
//						orderFlow.setStatus(flow.attributeValue("status"));
//						orderFlow.setUnionCode(flow.attributeValue("union-code"));
//						productionOrderFlows.add(orderFlow);
//					}
//				}
//			}
//		} catch (DocumentException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//
//	}
//
//	public static void main(String[] args) {
//		OrderFlowConfig.init("E:/workspaces/jhzz_scm/src/main/resources/orderflows.xml");
//	}
//}
